package marina;

import java.util.Scanner;

public class J17BasicClass {
	public static void main(String[] args){
		//객체 비교 : equals()
		String userID = "marina33";
		String password = "qlalfqjsgh";
		Scanner sc = new Scanner(System.in);
		System.out.println("아이디를 입력하세요.");
		String inputID = sc.next();
		if(userID == inputID){
			System.out.println("ID 일치!!!");
		} else {
			System.out.println("ID 불일치!!!");
		}
		//객체 비교 시 ==연산자를 사용하면 객체의 동질성(값을 비교하는게 아니라 객체가 가리키는 대상)을 비교함.
		//즉, 해당 객체의 주소값을 비교한다는 거임.
		System.out.println(System.identityHashCode(userID));
		System.out.println(System.identityHashCode(inputID));
		//따라서, 객체가 가진 값(동등성)을 비교할 때에는 Object 클래스에 정의된 equals()를 사용해야함.
		if(userID.equals(inputID)){
			System.out.println("ID 일치!!!");
		} else {
			System.out.println("ID 불일치!!!");
		}
		//wrapper class, boxing, un-boxing
		/* 1> wrapper class - 기본 자료형을 참조 자료형으로 다룰 수 있도록 JDK5부터 지원하는 클래스
		 * 2> boxing - 기본 자료형을 참조 자료형으로 변환
		 * 3> un-boxing - 참조 자료형을 기본 자료형으로 변환
		 * */
		int a = 1;
		Integer b = new Integer(1);
		System.out.println(b.toHexString(26));
		Integer c = 123; //자동 박싱
		//Integer c = new Integer(123);
		int d = c; //자동 언박싱
		//int d = c.intValue();
		//wrapper class의 사용 예
		System.out.println("숫자 하나 입력하세요.");
		//int mynum = sc.nextInt();
		//String mynum = sc.next();
		//System.out.println(mynum + 10);
		//wrapper class의 parseInt나 parseOut을 이용
		int mynum = Integer.parseInt(sc.next());
		System.out.println(mynum + 10);
		sc.close();
	}//main
}
